# 构建阶段
FROM node:20-alpine AS builder

# 设置工作目录
WORKDIR /app

# 设置 npm 镜像源（加速下载）
RUN npm config set registry https://registry.npmmirror.com

# 复制 package.json
COPY package.json ./

# 复制项目文件（包括 yarn.lock，如果存在）
COPY . .

# 安装依赖（如果有 yarn.lock 则使用 --frozen-lockfile）
RUN if [ -f yarn.lock ]; then yarn install --frozen-lockfile; else yarn install; fi

# 构建项目
RUN yarn build

# 生产阶段
FROM nginx:alpine

# 复制构建产物到 nginx
COPY --from=builder /app/dist /usr/share/nginx/html

# 复制 nginx 配置文件
COPY deployment/nginx.conf /etc/nginx/conf.d/default.conf

# 暴露端口
EXPOSE 80

# 启动 nginx
CMD ["nginx", "-g", "daemon off;"]

